package negocios.controladores;

import negocios.Funcionario;
import negocios.Usuario;
import negocios.excecoes.GestockException;
import dados.IRepositorioUsuario;
import dados.RepositorioUsuario;

public class ControladorUsuario implements IControladorUsuario {

	public void apagarUsuario(int idAcesso) throws GestockException {
		IRepositorioUsuario repUsuario = RepositorioUsuario.getInstancia();
		repUsuario.apagarUsuario(idAcesso);
	}

	public void alterarUsuario(Usuario usuario) throws GestockException {
		RepositorioUsuario repUsuario = RepositorioUsuario.getInstancia();
		repUsuario.alterarUsuario(usuario);
	}

	public void alterarSenhaUsuario(int idAcesso, String senha)
			throws GestockException {
		RepositorioUsuario repUsuario = RepositorioUsuario.getInstancia();
		repUsuario.alterarSenhaUsuario(idAcesso, senha);
	}

	public Usuario consultarUsuario(String usuario) throws GestockException {
		RepositorioUsuario repUsuario = RepositorioUsuario.getInstancia();

		return repUsuario.consultarUsuario(usuario);
	}

	public Usuario consultarUsuario2(String idFuncionario)
			throws GestockException {
		RepositorioUsuario repUsuario = RepositorioUsuario.getInstancia();

		return repUsuario.consultarUsuario2(idFuncionario);
	}

	public void cadastrarUsuario(Usuario usuario, Funcionario funcionario)
			throws GestockException {
		RepositorioUsuario repUsuario = RepositorioUsuario.getInstancia();
		repUsuario.cadastrarUsuario(usuario, funcionario);

	}

	public boolean validaUsuario(String usuario, String senha)
			throws GestockException {
		RepositorioUsuario repUsuario = RepositorioUsuario.getInstancia();

		if (repUsuario.consultarUsuario(usuario) != null) {

			if (usuario.equals(repUsuario.consultarUsuario(usuario)
					.getUsuario())
					&& senha.equals(repUsuario.consultarUsuario(usuario)
							.getSenha())) {
				return true;
			} else {
				return false;
			}

		} else {
			return false;
		}
	}

	public boolean verificaExistenciaDeUsuario(String usuario)
			throws GestockException {
		RepositorioUsuario repUsuario = RepositorioUsuario.getInstancia();

		if (repUsuario.consultarUsuario(usuario) != null) {
			if (usuario.equals(repUsuario.consultarUsuario(usuario)
					.getUsuario())) {
				return true;
			} else {
				return false;
			}
		} else {
			return false;
		}
	}

}
